/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*-
   this file is part of rcssserver3D
   Fri May 9 2003
   Copyright (C) 2003 Koblenz University
   $Id$

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 of the License.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
// -*- C++ -*- generated by wxGlade 0.4 on Sat Jan 21 16:34:57 2006

#ifndef PROPERTYFRAME_H
#define PROPERTYFRAME_H

#include "property.h"
#include <wx/wx.h>
#include <wx/image.h>

// begin wxGlade: ::dependencies
#include <wx/listctrl.h>
// end wxGlade

#include <boost/weak_ptr.hpp>
#include <zeitgeist/leaf.h>
#include "propertylist.h"

class propertyframe: public wxFrame {
public:
    // begin wxGlade: propertyframe::ids
    // end wxGlade

    propertyframe(wxWindow* parent, int id, const wxString& title, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=wxDEFAULT_FRAME_STYLE);

    /** set the managed leaf */
    void SetLeaf(boost::weak_ptr<zeitgeist::Leaf> leaf);

    /** refresh the displayed properties of the managed leaf */
    void RefreshProperties();

    /** update the cached reference to the managed leaf */
    void UpdateCached();

private:
    // begin wxGlade: propertyframe::methods
    void set_properties();
    void do_layout();
    // end wxGlade

protected:
    // begin wxGlade: propertyframe::attributes
    wxListCtrl* mCtrPropList;
    // end wxGlade

    zeitgeist::Leaf::CachedPath<zeitgeist::Leaf> mPath;

    PropertyList mPropList;
}; // wxGlade: end class


#endif // PROPERTYFRAME_H
